home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / text_utl / parsed / parseme2.txt < prev    next >
Text File  |  1994-10-04  |  4KB  |  127 lines

  1. 10/04/94
  2. PARSEDM2.ZIP - Revision 2 of demo project uploaded on
  3. CIS MSBASIC and VBPJ fora.
  4.  
  5. The project - PARSEDM2.MAK - A revision of a labor day project assembled from
  6. some good codestuff which I have found useful.
  7.  
  8. By Paul W. Reynolds,     CIS 71011,2040
  9.             Internet Paul.Reynolds@Channel1.Com
  10.         (note - I check in on CIS much more frequently
  11.          than I do on Channel1)
  12.  
  13. Revisions made for second uploaded version:
  14.  
  15. * Some minor changes made in the structure of the two
  16.   standard parsing routines.
  17.  
  18. * Added new routine utilizing the VB listbox instead of arrays - 
  19.   sometimes this is more convenient, and you don't have to deal
  20.   with array resizing.   
  21.  
  22. * Improved interface with main menu and icons for forms.
  23.  
  24. * Removed SPIN.VBX and replaced it with a vertical scroll bar.
  25.  
  26.  
  27.   **** ITEM OF INTEREST 1 - The items in the listbox may be
  28.   added in two ways - first, by the standard Vb AddItem method,
  29.   and second, using the SendMessage API. I tried them both, and
  30.   was surprised to find the AddItem method perform FASTER than the
  31.   API technique. To test this for yourself, go into the
  32.   ParseAndFillListBox% function, comment out the following
  33.   line:
  34.     L.AddItem Mid$(TheString$, CurPos%, CurStrLen%)       
  35.  
  36.   and uncomment either one of the two following lines
  37.     'ret& = SendMessageByString&(L.hWnd, LB_INSERTSTRING, -1, Mid$(TheString$, CurPos%, CurStrLen%))
  38.     'ret& = SendMessageByString&(L.hWnd, LB_ADDSTRING, 0, Mid$(TheString$, CurPos%, CurStrLen%))
  39.   
  40.   Compare the timing results.
  41.  
  42.  
  43.   Item of interest 2 - Routine GoNextForm() in SELECT.BAS contains a 
  44.   useful application of the parsing functions ParseAndFillArray1%() and
  45.   ProcessArray$() to remove ampersands from labels.
  46.  
  47. Information on Parse demo project.
  48.  
  49. This project demonstrates routines can be used to effectively
  50. parse a string into its elements. In this demo they are used 
  51. to obtain the word count and linecount in a textbox. A single or
  52. variable length delimiter may be used. For small amounts of text
  53. are plenty fast but they bog down with large amounts of text.
  54. The 32K limit is also a pain (actually under 28K with VB
  55. text boxes). Nonetheless for many situations they are 
  56. useful (parsing command-line parameters, tag values, INI
  57. file processing, etc.). With two function calls, text can be
  58. processed to replace CRLF's with spaces, or spaces replaced
  59. with CRLF's at particular length intervals.
  60.  
  61.  
  62. No special VBX's or DLL's required except for the VB
  63. runtime library VBRUN300.DLL.
  64.  
  65. To run the program, copy all the files into a common directory,
  66. and run the program from that directory.
  67.  
  68.  
  69. File List:
  70.  
  71. MAIN.BAS - Startup module with Sub Main(), and a few global
  72. declarations and constants.
  73.  
  74. PARSE.BAS - Contains routines used to parse and process strings
  75. and text. Explanations and information are given above each function
  76. routine, and code is heavily commented here and elsewhere
  77. (as is my convention).
  78.  
  79. SELECT.BAS - Routine added in version 2 which processes user function
  80. selections and interaction between forms.
  81.  
  82. MDELIM.FRM (frmMultiDelim) - The form which appears
  83. when the 'Multiple Char. Delim Test' command button is executed
  84. from frmMain. This part of the demonstration shows how the
  85. routines in PARSE.BAS can be used for parsing small strings
  86. and finding strings within strings.
  87.  
  88. PARSE.FRM (frmParse) - The code required to execute the parsing of a text
  89. field into lines and words is called here.
  90.  
  91. SELFILE.FRM (frmSelFile) - This form loads when the 'Select File' 
  92. command button is executed from frmParse.  This is where you select a text file
  93. to parse.
  94.  
  95. PARSEME2.TXT - This readme file.
  96.  
  97. BASIC.TXT - A short text file I used fro testing the code.
  98.  
  99. PARSEDM2.MAK
  100.  
  101.  
  102.  
  103.  
  104. Other Comments:
  105.     In the modules, note the use of:
  106.     Option Explicit
  107.     Option Compare Text (where useful)
  108.  
  109. Naming conventions used:
  110.  
  111. * Variables - Type-declaration characters used for giving variable
  112.   type information. I also use prefixes for module and global
  113.   scope (this project has no module or global variables).
  114.  
  115. * Standard control prefixes are used similar to those recommended
  116.   by MS Consulting Services.
  117.  
  118.  
  119. This project is Public Domain - I hope that it is useful, but
  120. I hold no responsibility for any damages resulting from the
  121. use and/or misuse of the code contained herein. If you find any
  122. errors in these routines or have any questions, please
  123. contact me by E_Mail.
  124.  
  125.  
  126.  
  127.